var _____WB$wombat$assign$function_____ = function(name) {return (self._wb_wombat && self._wb_wombat.local_init && self._wb_wombat.local_init(name)) || self[name]; }; if (!self.__WB_pmw) { self.__WB_pmw = function(obj) { this.__WB_source = obj; return this; } } { let window = _____WB$wombat$assign$function_____("window"); let self = _____WB$wombat$assign$function_____("self"); let document = _____WB$wombat$assign$function_____("document"); let location = _____WB$wombat$assign$function_____("location"); let top = _____WB$wombat$assign$function_____("top"); let parent = _____WB$wombat$assign$function_____("parent"); let frames = _____WB$wombat$assign$function_____("frames"); let opener = _____WB$wombat$assign$function_____("opener"); define(['jquery','moduleVersions','internal/sitebuilder/common/log','spine','internal/sitebuilder/common/webs.modules','internal/sitebuilder/common/creativeCommons'],function($,moduleVersions,log,Spine,websModules){var MODULE_LOAD_TIMEOUT=30000;var RESOLVED_PROMISE=$.Deferred().resolve().promise();var ModuleClassLoader=Spine.Class.create({init:function(options){this.MODULES_URL=options.MODULES_URL;this.MODULES_VERSION=options.MODULES_VERSION;this.classes={};this.modulePromises={};this.moduleJSPromises={};},getClass:function(moduleSlug){return this.classes[moduleSlug];},register:function(moduleSlug,include,extend){var superClass;extend.slug=moduleSlug;if(extend.iframe){superClass=websModules.IframeModule;}else if(extend.isWidget){superClass=websModules.WidgetModule;}else if(extend.submodules){superClass=websModules.CompositeModule;}else{superClass=websModules.CustomModule;} this.classes[moduleSlug]=superClass.create(include,extend);if(!this.moduleJSPromises[moduleSlug]){this.moduleJSPromises[moduleSlug]=new $.Deferred();} this.moduleJSPromises[moduleSlug].resolve();},_create:function(moduleClass,options,deferred){var moduleSlug=moduleClass.slug,proto=$.extend({},moduleClass),data=$.extend(true,{},moduleClass.defaultData,options.data),style=moduleClass.styles[data._style]||moduleClass.defaultStyle;if(data.bucketContents&&options.data&&options.data.bucketContents){data.bucketContents=options.data.bucketContents;for(var i=0,len=data.cols.length;i=0;i--){s=styles[i];subClass=s.klass;if(!subClass){delete s.defaultStyle;if(s.global.js){var include={},extend={};s.global.js(include,extend);s.klass=subClass=superClass.create(include,extend);}else{s.klass=subClass=superClass;}} superClass=subClass;} return superClass;}else{if(log){log.trigger('Modules','info','No style found for '+moduleClass.slug+' module!',moduleClass);} return moduleClass;}},getModuleSlugFromUrl:function(url){var urlParts=url.split('/');var moduleSlug;if(urlParts[2]=='modules'){moduleSlug=urlParts[3];}else{moduleSlug=urlParts[3]+'_'+urlParts[urlParts.length-1].replace('.less','');} return moduleSlug;},getModuleVersion:function(slug){var version;if(moduleVersions&&slug in moduleVersions){version='v'+moduleVersions[slug];}else{log.warn('WARNING: Retrieving unversioned asset for module '+slug);version=this.MODULES_VERSION;} return version;},getModuleAssetURL:function(slug,path){return this.MODULES_URL+slug+'/'+this.getModuleVersion(slug)+'/'+path;},cssPath:function(slug){return this.getModuleAssetURL(slug,'view.packaged.less');},load:function(slug){if(this.modulePromises[slug]){return this.modulePromises[slug];} var self=this,cssLoadedPromise=this.loadCss(this.cssPath(slug)),dependenciesLoadedPromise=$.Deferred();this.modulePromises[slug]=$.Deferred();if(!this.moduleJSPromises[slug]){this.moduleJSPromises[slug]=new $.Deferred();} this.loadJs(slug);this.moduleJSPromises[slug].done(function(){self.loadModuleDependencies(slug).done(dependenciesLoadedPromise.resolve).fail(dependenciesLoadedPromise.reject);}).fail(dependenciesLoadedPromise.reject);$.when(cssLoadedPromise,dependenciesLoadedPromise).done(self.modulePromises[slug].resolve).fail(self.modulePromises[slug].reject);setTimeout(this.modulePromises[slug].reject,MODULE_LOAD_TIMEOUT);return this.modulePromises[slug];},loadAll:function(types){var deferredBulkLoad=$.Deferred(),typePromises=[];for(var i=0,len=types.length;i